Skip to content

feat: steel computer - #98

Merged
junhsss merged 6 commits into
mainfrom
jun/computer
Sep 10, 2026
Merged

feat: steel computer#98
junhsss merged 6 commits into
mainfrom
jun/computer

Conversation

@junhsss

@junhsss junhsss commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds steel computer, the CLI surface for Steel computers.

  • Lifecycle. create (--template, --region, --vcpu, --memory, --disk, --timeout, --auto-pause, --wait, --use), list, get, delete, pause, resume --wait.
  • use. Remembers a default computer in ~/.config/steel/config.json so the other commands need no id. Resolution order is the positional id, then STEEL_COMPUTER_ID, then the stored default.
  • exec. steel computer exec [id] -- <argv> or -c "<shell string>", with --cwd, --env KEY=VALUE, --timeout. In text mode the output streams as it arrives; in --json mode the result is one {output, exitCode, timedOut, truncated} object. The remote exit code is the CLI's exit code, and a timeout exits 124. A 503 with Retry-After from a waking computer is retried with a short backoff.
  • ssh. A built-in SSH client (russh) over the gateway's steel-ssh-v1 WebSocket bridge. steel computer ssh [id] opens a shell with a pty, raw mode and window resizes; steel computer ssh [id] -- <command> runs one command with stdin. No keys to manage: the bridge is authenticated by the API key at the gateway, and the guest sshd accepts the session behind it.

The WebSocket goes to the API host (STEEL_API_URL), not connect.steel.dev; computer routes live on the public API host and are routed to the computer's box by id.

@junhsss
junhsss merged commit 97b72ff into main Sep 10, 2026
8 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant